Шаг 864 - CMenu::AppendMenu.

Автор Каев А. Г.
BOOL AppendMenu( UINT nFlags, UINT nIDNewItem = 0, LPCTSTR lpszNewItem = NULL );
BOOL AppendMenu( UINT nFlags, UINT nIDNewItem, const CBitmap* pBmp );

Возвращаемое значение
Отлично от нуля, если функция успешна, иначе 0.

Параметры
nFlags
Определяет информацию относительно состояния нового пункта меню, когда это добавлено к меню. Это состоит из одного или большее количество значений, перечисленных в разделе Замечаний.
nIDNewItem
Определяет или команду ID нового пункта меню или, если nFlags установлен к MF_POPUP, дескриптор меню (HMENU) всплывающего меню. nIDNewItem параметр игнорируется (не необходим) если nFlags установлен к MF_SEPARATOR.
lpszNewItem
Определяет содержание нового пункта меню. nFlags параметр используется, чтобы интерпретировать lpszNewItem следующим способом:

 	
MF_OWNERDRAW 	 Содержит обеспеченное прикладная программой 32-разрядное значение, что прикладная программа 
		может использовать, чтобы поддержать дополнительные данные, связанные с пунктом меню. 
		Это 32-разрядное значение доступно прикладной программе, когда это обрабатывает WM_MEASUREITEM 
		и WM_DRAWITEM сообщения. Значение сохранено в itemData члене структуры, обеспеченной теми сообщениями. 	
MF_STRING 	 Содержит указатель на строку с нулевым символом в конце. Это - заданная по умолчанию интерпретация. 	
MF_SEPARATOR 	 lpszNewItem параметр игнорируется. 	
pBmp
Указатель на объект CBitmap, который будет использоваться как пункт меню.

Замечания
Конкатенирует новый элемент к концу меню. Прикладная программа может определять состояние пункта меню, устанавливая значения в nFlags. Когда nIDNewItem определяет всплывающее меню, это становится частью меню, для которого это конкатенировано. Если то меню разрушено, конкатенированное меню будет также разрушено. Конкатенированное меню должно отсоединиться из объекта CMenu, чтобы избежать конфликта. Обратите внимание, что MF_STRING и MF_OWNERDRAW не допустим для растровой версии AppendMenu.
Следующий список описывает флажки, которые могут быть установлены в nFlags:

 
MF_CHECKED 	Действует как переключатель с MF_UNCHECKED, чтобы поместить заданную по умолчанию галочку 
		рядом с элементом. Когда прикладная программа обеспечивает точечные рисунки галочки 
		(см. SetMenuItemBitmaps функцию), " галочка на " точечный рисунок отображается.
MF_UNCHECKED 	Действует как переключатель с MF_CHECKED, чтобы удалить галочку рядом с элементом. 
		Когда прикладная программа обеспечивает точечные рисунки галочки (см. SetMenuItemBitmaps функцию), 
		" галочка от " точечный рисунок отображается.
MF_DISABLED 	Отключает пункт меню так, чтобы оно не могло быть выбрано, но не делает его тусклым.
MF_ENABLED 	Допускает пункту меню так, чтобы оео могло быть выбрано и восстановит это из недоступного состояния.
MF_GRAYED 	Отключает пункт меню так, чтобы оно не могло быть выбрано и делает его тусклым.
MF_MENUBARBREAK 	Помещает элемент в новую строку в статических меню или в новом столбце в всплывающим меню. 
		Новый столбец всплывающего меню  будет отделяться от старого столбца вертикальной разделительной линией.
MF_MENUBREAK 	Помещает элемент в новую строку в статических меню или в новом столбце в всплывающем меню. 
		Никакая разделительная линия не помещена между столбцами.
MF_OWNERDRAW 	Определяет, что элемент - владелец - выводящийся элемент. Когда меню отображается впервые, окно, 
		которое обладает меню, получает WM_MEASUREITEM сообщение, которое восстанавливает высоту и ширину 
		пункта меню. WM_DRAWITEM сообщение - то посланное всякий раз, когда владелец должен модифицировать 
		визуальное появление пункта меню. Эта опция не допустима для верхнего уровня пункта меню.
MF_POPUP 		Определяет, что пункт меню имеет всплывающее меню, связанное с этим. Параметр ID определяет 
		дескриптор к всплывающему меню, которое должно быть связано с элементом. Это используется для 
		добавления или верхнего уровня всплывающее меню с  или иерархическое всплывающее меню для пункта меню.
MF_SEPARATOR 	Выводит горизонтальную разделительную линию. Может только использоваться в всплывающем меню. 
		Эта строка не может быть недоступна, заблокирован, или высвечен. Другие параметры игнорируются.
MF_STRING 	Определяет, что пункт меню - символьная строка.

Каждая из следующих групп вносит в список флажки, которые являются взаимно исключительными и не могут использоваться вместе:

 
MF_DISABLED, MF_ENABLED, и MF_GRAYED
MF_STRING, MF_OWNERDRAW, MF_SEPARATOR, и растровая версия
MF_MENUBARBREAK и MF_MENUBREAK
MF_CHECKED и MF_UNCHECKED 

Всякий раз, когда меню, которое постоянно находится в окне, изменено (отображается или нет окно), прикладная программа должна вызвать CWnd::DrawMenuBar.

Hosted by uCoz